package com.newmainsoftech.dao.entity.relation;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;

public interface HoldeeListIteratorProxy<E extends HoldeeSide<R>, R extends HolderSide<E>> 
extends InvocationHandler {
	/**
	 * Being called to handle invocation of <code>add(E e)</code> method of <code>ListIterator</code> 
	 * interface.<br /> 
	 * 
	 * @param proxy
	 * @param method
	 * @param holdee
	 * @return
	 */
	Object interAdd(final Object proxy, final Method method, final E holdee);

	/**
	 * Being called to handle invocation of <code>Set(E e)</code> method of <code>ListIterator</code> 
	 * interface.<br /> 
	 * 
	 * @param proxy
	 * @param method
	 * @param holdee
	 * @return
	 */
	Object interSet(final Object proxy, final Method method, final E holdee);
}